草庐IT

PHP If...Else 语句

全部标签

php - Zend Framework 2 中的 SUBSTRING()/MID() 语句

我正在尝试实现以下非常简单的查询:WHEREa.first_tableISNULLANDa.second_tableISNOTNULLANDSUBSTRING(b.third_table,5,2)=@plan_year;正如您可能猜到的,前两个陈述并不是真正的问题。我目前无法通过Zend实现SUBSTRING(),因为我想保持代码DB-System中立。有什么办法可以做到这一点吗?谢谢 最佳答案 如何使用SUBSTR而不是SUBSTRING?WHEREa.first_tableISNULLANDa.second_tableISNOT

php - 限制偏移量大于实际记录的mysql select语句

我创建了一个mysql语句,使用LIMITx,n对结果进行分页(其中x是偏移量,n是返回的条目).偏移量是使用GET-Vars以page=x的形式创建的。现在Google的索引中有一些来自旧抓取的奇怪条目,其中页面变量超过了结果集中记录的实际数量。意思是,使用page变量创建的查询结果类似于LIMIT1000,30-但查询只会返回900条目(因为表的内容同时发生了变化。当然,这会返回一个空的结果集。有没有办法告诉mysql,如果偏移量超过返回的记录,则只显示最后一个可能的结果集?我不想首先使用COUNT()进行额外的查询,因为这会使mysql-server的负载加倍(现在我正在使用SQ

php - 你能在MYSQL语句中做if/else逻辑吗?

我的数据库中有足球运动员。他们每个人都有一个排名(1是最好的),我在MYSQL查询中即时计算他们的年龄。该查询使用他们的排名加上他们的年龄进行ORDERBY。所以我首先有这个...$rankquerytext="ranking+age";然后我有查询...$sql="SELECT*,FLOOR(DATEDIFF(CURDATE(),born)/365.25)ASageFROMplayersORDERBY".$rankquerytext."";这很好用。但是,我想更具体一点,而不是仅仅将他们的年龄添加到他们的排名中。例如,我更愿意以某种方式在MySQL查询中或就在它之前执行if/else

php - mySQL 语句的第一个词不能是 DELETE 或 UPDATE

我目前正在写一个查询数据库的页面,而不是使用命令行(它只是为了练习PHP如何与整个数据库交互)。现在,我正在尝试限制删除或更新数据,即没有DELETE、DROP或UPDATE语句。修剪所有空格(包括\r和\s等)后,仅扫描第一个单词以确定它是什么类型的查询就足够了吗?换句话说,是否可以编写DELETE、DROP或UPDATE查询而不将它们作为修剪空格后的第一个词?我目前正在使用mysqli_query,因此无法执行多个查询。编辑1:添加相关代码@Tim。$queryCheck=strtolower($query);$queryCheck=preg_replace("/\s+/","",

php - 在 select 语句中确定字符串的优先级

我有一个select语句,如果一个字符串包含下面的任何单词,它会选择它,但它不会按照单词包含的顺序选择它。例如,如果数据库中的字符串是“三二一”,而不是“一二三”,它无论如何都会选择它。我想做到这一点,以便它首先按照字符串的顺序排列优先级,然后再尝试获取那些不符合该顺序的字符串。这可能吗?$text1="one";$text2="two";$text3="three";SELECTtext,((textLIKE'%$text1%')+(textLIKE'%$text2%')+(textLIKE'%$text3%'))as`matches`FROMtableNameHAVING`matc

php - 阿拉伯文本在 php/mysql 中有时会出现 “???” 有时会在 select/insert 语句后出现 "ÙØ¤ØªØ§"

我有一个正在进行的项目,我需要从mysql表中获取阿拉伯语文本,并时常插入/更新它们。我在“utf8_general_ci”中有我的数据库排序规则。一开始我发现问号“???”在获取一些阿拉伯数据后。然后我执行了“SETCHARACTERSETutf8”。该特定问题的问号问题已解决,但随后其他阿拉伯语数据开始显示乱码“ÙØ¤ØªØ§”。在项目中,我还需要从包含阿拉伯文本的csv中获取一些数据。这里是我查到的charset执行前后的json数据:[{"id":148,"domain":0,"group_name":"ATX??????????","score":0,"player_name

php - MYSQL SELECT Group By 语句

产品表:ProductID|Manufacturer|PartNo|Name-----------------------------------------------------------------770593|GBC|EB100000|GBC(30inch)IDNeckChain-1xPackof100NeckChains775308|Elba|100080883|ElbaVision(A5)RingBinder801982|Elba|100080883|ElbaVision(A5)RingBinder匹配的SKU表:SupplierSKUID|ProductID------

MySQL JOIN 语句按选定的链接属性过滤行

假设我有以下两个MySQL表:项目:_ID,_CAT_ID,...item_attribute:_ID,_ITEM_ID,...我想(过滤项目)只获得具有所有选定属性(1,32,555,...选定属性的数组)的项目像这样:SELECT_I.*FROMitem_IINNERJOINitem_attribute_IAON(_I._ID=_IA._ITEM_IDAND(_IA._ID=1OR_IA._ID=132,...))WHERE_I._CAT_ID=?ORDERBY_I._LAST_UPDATEASC;"此“错误”语句在找到一个(由于OR)链接ID时返回项目,我想要的是:只有具有所有链

mysql - 是否可以在 MySQL 的 case when 语句中匹配多个值?

考虑示例:casewhentype='myValue'then'default'elsetypeend如何在此处列出多个值type='myValue'?而不是复制:casewhentype='myValue'then'default'whentype='other'then'default'elsetypeend 最佳答案 您可以在when子句中使用任何条件。例如,在您的情况下,您可以使用in运算符:casewhentypein('myValue','other')then'default'elsetypeend

mysql - 如何简化sql语句

我有以下查询——select*frommain_iteminstancewheremaster_id=33568ortv_series_idin(selectidfrommain_iteminstancewheremaster_id=33568)如何最好地简化它?基本上,我想要得到的是:ids=selectidfrommain_iteminstancewheremaster_id=33568child_ids=selectidfrommain_iteminstancewheretv_series_idinidsmy_answer=ids+child_ids